/*
 * @Author: 郑亮 z17620994877@163.com
 * @Date: 2024-04-11 14:50:06
 * @LastEditors: 冰凌 1084359940@qq.com
 * @LastEditTime: 2024-04-14 14:38:43
 * @FilePath: \my-maple-flower-app\src\searve\axios.ts
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
import axios, { AxiosRequestConfig, AxiosResponse } from "axios";
import router from '../router'
import { showNotify } from 'vant';

axios.defaults.baseURL = '/api'
// 添加请求拦截器
axios.interceptors.request.use(
    function (config: AxiosRequestConfig) {
        // 在发送请求之前做些什么
        config.headers.token = localStorage.getItem('token')
        return config;
    },
    function (error: any) {
        // 对请求错误做些什么
        return Promise.reject(error);
    }
);

// 响应拦截器
axios.interceptors.response.use(
    function (response: AxiosResponse) {
        if(response.data.code === 401){
            localStorage.removeItem('token')
            router.push('/login')
            return
        }
        if(response.data.code !== 200){
            showNotify({ type: 'danger', message: response.data.msg });
            return
        }
        // 对响应数据做点什么
        return response.data;
    },
    function (error: any) {
        // 对响应错误做点什么
        return Promise.reject(error);
    }
);

export default axios